package jwj8508;

public class J01_Fundamentals {
	
	// ::: 유니코드 unicode :::
	
	// ASCII
	// - 전통적으로 영어권 나라들은 알파벳을 표기하기 위해 ASCII문자집합을 사용
	// - ASCII 문자집합에서 각 문자는 7비트를 사용하고 총 128개의 문자를 나타낼 수 있음
	
	// 확장 ASCII
	// - 유럽권 문자 표기를 위해 확장 ASCII문자 집합 사용
	// - 추가적으로 128개의 문자를 정의 (총 256개의 문자를)
	
	// - 모든 국가들이 라틴 문자를 사용하지 않음
	//   동양 문화권에 속한 나라들은 다른 문자집합을 사용
	// - 8비트로는 수 천개의 문자를 나타내는데 무리가 있음
	
	// 한국 문자집합
	// - EUC-KR (ISO-2022-KR) : 8비트 한글 완성형 문자 인코딩
	// - 사용빈도가 높은 2350자만 채택
	// - CP949
	//		= 기존의 부족했던 완성형 한글을 보완하기 위해 윈도 95부터 사용한 문자 인코딩
	//		= 확장 완성형이라는 명칭으로 도입
	//		= KS C 5601-1987라고 불리기도 함
	//		= 현대의 모든 한글 수용 (8822추가)
	
	// 유니코드 unicode
	// - 유니코드 컨소시움이라는 비영리 단체에 의해 개발된 문자집합
	// - 전 세계 언어의 문자를 하나의 문자 집합에 포함하려 함
	// - 유니코드에 있는 고유 번호로 정확히 한 문자를 표시
	
	// UTF-8
	// - 바이트 가변길이 인코딩으로 유니코드 문자를 나타냄
	// - 영어는 1바이트, 한글은 3바이트 이용
	// - 대부분의 브라우저 UTF-8 인코딩 지원
	
	
	public static void main(String[] args) {
		// 변수 선언 및 값 할당
		// [자료형] [변수명] = [리터럴];
		short birthyear = 1982;
		int birth_year = 1982;
		
		float pi = 3.14F;
			// 실수 리터럴을 의미하는 접미사(f)는
			// 대문자로 표기하는 것이 가독성이 좋음
		
		long jumin = 198207202120856L;
			// 정수 리터럴을 의미하는 접미사(l)는
			// 대문자로 표기하는 것이 가독성이 좋음
		
		char _1st_name = '김', _2nd_name = '혜', _3rd_name = '현', grade = '수';
		
//		char _1st_name = '김';
//		char _2nd_name = '혜';
//		char _3rd_name = '현';		
//		char grade = '수';

		boolean isMale = true, isMarried = false;
			// 동일한 자료형을 가지는 변수는 ,를 이용해서 다중 변수 선언 가능
			// 하지만 가독성이 떨어지기 때문에 비추천
//		boolean isMale = true;
//		boolean isMarried = false;
		
		char code1 = '\uC790';		// 유니코드
		char code2 = '\uBC15';
		char symbol1 = '\u263A';	// 기호
		char symbol2 = '\u2639';
		
		// 변수 값 출력
		// 자바 표준 출력문 System.out.println() 사용
		// System.out.println(변수명);
		System.out.println( birthyear );
		System.out.println( birth_year );
		System.out.println( pi );
		System.out.println( jumin );
		System.out.print( _1st_name );
		System.out.print( _2nd_name );
		System.out.println( _3rd_name );
		System.out.println( grade );
		System.out.println( isMale );
		System.out.println( isMarried );
		
		System.out.println(code1);
		System.out.println(code2);
		System.out.println(symbol1);
		System.out.println(symbol2);
		
		String[] year = new String[100];
		for (int i = 0; i < year.length; ++i) {
			year[i] = (2013 - i) + "년";
			System.out.println(year[i]);
		}

	}

}

















